package xyz.hubery.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import xyz.hubery.domain.AsyncTask;

import java.util.List;


/**
* @author huber
* @description 针对表【async_task】的数据库操作Mapper
* @createDate 2025-10-22 17:44:30
* @Entity xyz.hubery.domain.AsyncTask
*/
public interface AsyncTaskMapper extends BaseMapper<AsyncTask> {

    /**
     * 查询所有还未处理的任务
     * @return
     */
    List<AsyncTask> findPendingTasks();

    /**
     * 使用乐观锁更新当前任务状态
     * @param id 任务id
     * @param oldVersion 版本号
     * @param status  状态
     * @return
     */
    int updateStatus(@Param("id") Long id,@Param("oldVersion") Integer oldVersion,@Param("status") int status);


    /**
     * 更新处理失败的任务
     * @param task
     */
    void failUpdate(AsyncTask task);
}




